home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / short29.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  47KB  |  2,168 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "short.h"
  9. /*No:CREATION_CLAUSE_LIST.fz_cbe*/
  10. /*No:CREATION_CLAUSE_LIST.fatal_error_vtec_2*/
  11.  
  12.  
  13. T0* r16start_position(T16* C){
  14. T0* R=NULL;
  15. R=((T74*)(r75first((T75*)((C)->_list/*0*/))))->_start_position/*0*/;
  16. return R;
  17. }
  18. /*No:CREATION_CLAUSE_LIST.add_last*/
  19.  
  20.  
  21. T0* r16get_clause(T16* C,T0* a1){
  22. T0* R=NULL;
  23. T2 _i=0;
  24. _i=1;
  25. while (!(((_i)>(((T75*)((C)->_list/*0*/))->_upper/*8*/))||(r74has((T74*)(r75item((T75*)((C)->_list/*0*/),_i)),a1)))) {
  26. _i=(_i)+(1);
  27. }
  28. /*[IF*/
  29. if((_i)<=(((T75*)((C)->_list/*0*/))->_upper/*8*/)){
  30. R=r75item((T75*)((C)->_list/*0*/),_i);
  31. }
  32. /*FI]*/
  33. return R;
  34. }
  35.  
  36.  
  37. T0* r16expanded_initializer(T16* C,T0* a1){
  38. T0* R=NULL;
  39. R=r74expanded_initializer((T74*)(r75item((T75*)((C)->_list/*0*/),1)),a1);
  40. return R;
  41. }
  42. /*No:CREATION_CLAUSE_LIST.make*/
  43. /*No:CREATION_CLAUSE_LIST.list*/
  44.  
  45.  
  46. T6 r16short(T16* C){
  47. T6 R=0;
  48. T2 _i=0;
  49. _i=1;
  50. while (!((_i)>(((T75*)((C)->_list/*0*/))->_upper/*8*/))) {
  51. R=(r74short((T74*)(r75item((T75*)((C)->_list/*0*/),_i)),R))||(R);
  52. _i=(_i)+(1);
  53. }
  54. return R;
  55. }
  56. /*No:CREATION_CLAUSE_LIST.fatal_error*/
  57.  
  58.  
  59. void r16check_expanded_with(T16* C,T0* a1){
  60. /*[IF*/
  61. if((((T75*)((C)->_list/*0*/))->_upper/*8*/)>(1)){
  62. r67add_type(a1,((T0*)ms12_23835));
  63. r67add_position(((T74*)(r75item((T75*)((C)->_list/*0*/),1)))->_start_position/*0*/);
  64. r67add_position(((T74*)(r75item((T75*)((C)->_list/*0*/),2)))->_start_position/*0*/);
  65. /*[IRF3.2fatal_error_vtec_2*//*[IRF3.6fatal_error*/{T0* b1=((T0*)ms11_572294);
  66. r67fatal_error((T67*)(oBC11eh),b1);
  67. }/*]*/
  68. /*]*/
  69. }
  70. /*FI]*/
  71. r74check_expanded_with((T74*)(r75item((T75*)((C)->_list/*0*/),1)),a1);
  72. }
  73.  
  74.  
  75. T0* r310get_feature_with(T310* C,T0* a1){
  76. T0* R=NULL;
  77. T0* _sfn=NULL;
  78. /*[IF*/
  79. if(r317has((T317*)((C)->_feature_dictionary/*24*/),a1)){
  80. R=r317at((T317*)((C)->_feature_dictionary/*24*/),a1);
  81. }
  82. else{
  83. {T135*n=malloc(sizeof(*n));
  84. *n=M135;
  85. r135make(n,a1,NULL);
  86. _sfn=(T0*)n;
  87. }
  88. R=r310get_feature(C,_sfn);
  89. }
  90. /*FI]*/
  91. return R;
  92. }
  93. /*No:RUN_CLASS.actuals_clients*/
  94.  
  95.  
  96. T0* r310base_class(T310* C){
  97. T0* R=NULL;
  98. R=X46base_class((C)->_current_type/*0*/);
  99. return R;
  100. }
  101.  
  102.  
  103. T0* r310get_or_fatal_error(T310* C,T0* a1){
  104. T0* R=NULL;
  105. R=r310get_feature(C,a1);
  106. /*[IF*/
  107. if((R)==((void*)(NULL))){
  108. r67add_position(X77start_position(a1));
  109. /*[IRF3.6append*/{T0* b1=((T0*)ms310_6176);
  110. r7append((T7*)(oBC67explanation),b1);
  111. }/*]*/
  112. /*[IRF3.6append*/{T0* b1=X77to_string(a1);
  113. r7append((T7*)(oBC67explanation),b1);
  114. }/*]*/
  115. /*[IRF3.6append*/{T0* b1=((T0*)ms310_62016);
  116. r7append((T7*)(oBC67explanation),b1);
  117. }/*]*/
  118. r67add_type((C)->_current_type/*0*/,((T0*)ms12_47));
  119. r67print_as_fatal_error((T67*)(oBC11eh));
  120. }
  121. /*FI]*/
  122. return R;
  123. }
  124.  
  125.  
  126. void r310used_as_reference(T310* C){
  127. T0* _type_ref_to_exp=NULL;
  128. T0* _rtm=NULL;
  129. _rtm=X46run_time_mark((C)->_current_type/*0*/);
  130. /*[IF*/
  131. if(!(r359has((T359*)(oBC310to_reference_memory),_rtm))){
  132. {T358*n=malloc(sizeof(*n));
  133. *n=M358;
  134. r358make(n,(C)->_current_type/*0*/);
  135. _type_ref_to_exp=(T0*)n;
  136. }
  137. r359put((T359*)(oBC310to_reference_memory),_type_ref_to_exp,_rtm);
  138. }
  139. /*FI]*/
  140. }
  141. /*No:RUN_CLASS.running*/
  142.  
  143.  
  144. T0* r310get_rf(T310* C,T0* a1,T0* a2,T0* a3){
  145. T0* R=NULL;
  146. T0* _bcn=NULL;
  147. T0* _tfg=NULL;
  148. T0* _constraint=NULL;
  149. T0* _target_type=NULL;
  150. T0* _wbc2=NULL;
  151. T0* _wbc=NULL;
  152. T0* _fn2=NULL;
  153. T6 _is_current=0;
  154. _target_type=X53result_type(a1);
  155. _is_current=X53is_current(a1);
  156. _wbc=r69base_class((T69*)(X77start_position(a2)));
  157. /*[IF*/
  158. if((_is_current)||(X46is_like_current(_target_type))){
  159. _fn2=r22new_name_of((T22*)(X46base_class(_target_type)),_wbc,a2);
  160. /*[IF*/
  161. if((_fn2)!=((void*)(a2))){
  162. r67add_position(X77start_position(a2));
  163. R=r310get_or_fatal_error(C,_fn2);
  164. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  165. /*]*/
  166. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  167. /*]*/
  168. /*]*/
  169. }
  170. else{
  171. R=r310get_or_fatal_error(C,a2);
  172. }
  173. /*FI]*/
  174. }
  175.  else if(X46is_formal_generic(_target_type)){
  176. _tfg=_target_type;
  177. if(NULL!=(_tfg))switch(((T0*)_tfg)->id) {
  178. case 267: 
  179. break;
  180. default:
  181. _tfg=NULL;
  182. };_constraint=r267constraint(((T267*)_tfg));
  183. /*[IF*/
  184. if((_constraint)==((void*)(NULL))){
  185. R=r310get_or_fatal_error(C,a2);
  186. }
  187.  else if(!(r267is_a(((T267*)_tfg),_constraint))){
  188. r67print_as_error((T67*)(oBC11eh));
  189. r67add_position(X77start_position(a2));
  190. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms310_64192);
  191. r67fatal_error((T67*)(oBC11eh),b1);
  192. }/*]*/
  193. }
  194. else{
  195. _wbc2=r69base_class((T69*)(X46start_position(_constraint)));
  196. /*[IF*/
  197. if(((_wbc2)==((void*)(_wbc)))||(r22is_subclass_of(((T22*)_wbc),_wbc2))){
  198. _fn2=r22new_name_of((T22*)(r267base_class(((T267*)_tfg))),X46base_class(_constraint),a2);
  199. R=r310get_or_fatal_error(C,_fn2);
  200. }
  201. else{
  202. R=r310get_or_fatal_error(C,a2);
  203. }
  204. /*FI]*/
  205. }
  206. /*FI]*/
  207. }
  208. else{
  209. R=r310get_or_fatal_error(C,a2);
  210. }
  211. /*FI]*/
  212. X312add_client(R,(T0*)C);
  213. /*[IF*/
  214. if(((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0))&&(!(_is_current))){
  215. _bcn=((T22*)(X46base_class(a3)))->_name/*24*/;
  216. /*[IF*/
  217. if(!(X312is_exported_in(R,_bcn))){
  218. r67add_position(X312start_position(R));
  219. /*[IRF3.6append*/{T0* b1=((T0*)ms310_24045);
  220. r7append((T7*)(oBC67explanation),b1);
  221. }/*]*/
  222. /*[IRF3.6append*/{T0* b1=X77to_string(a2);
  223. r7append((T7*)(oBC67explanation),b1);
  224. }/*]*/
  225. r310error(X77start_position(a2),((T0*)ms310_5054));
  226. r67add_position(X77start_position(a2));
  227. /*[IRF3.6append*/{T0* b1=((T0*)ms310_68679);
  228. r7append((T7*)(oBC67explanation),b1);
  229. }/*]*/
  230. /*[IRF3.6append*/{T0* b1=X46run_time_mark(a3);
  231. r7append((T7*)(oBC67explanation),b1);
  232. }/*]*/
  233. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_47);
  234. r67fatal_error((T67*)(oBC11eh),b1);
  235. }/*]*/
  236. }
  237. /*FI]*/
  238. }
  239. /*FI]*/
  240. return R;
  241. }
  242. T0*oBC310to_reference_memory=NULL;
  243.  
  244.  
  245. T0* r310get_feature(T310* C,T0* a1){
  246. T0* R=NULL;
  247. T0* _bc=NULL;
  248. T0* _fn_key=NULL;
  249. T0* _f=NULL;
  250. _fn_key=X77to_key(a1);
  251. /*[IF*/
  252. if(r317has((T317*)((C)->_feature_dictionary/*24*/),_fn_key)){
  253. R=r317at((T317*)((C)->_feature_dictionary/*24*/),_fn_key);
  254. }
  255. else{
  256. _bc=r310base_class(C);
  257. _f=r22look_up_for(((T22*)_bc),(T0*)C,a1);
  258. /*[IF*/
  259. if((_f)==((void*)(NULL))){
  260. r310efnf(C,_bc,a1);
  261. }
  262. else{
  263. R=X87to_run_feature(_f,(C)->_current_type/*0*/,a1);
  264. /*[IF*/
  265. if((R)!=((void*)(NULL))){
  266. r310store_feature(C,R);
  267. }
  268. else{
  269. r310efnf(C,_bc,a1);
  270. }
  271. /*FI]*/
  272. }
  273. /*FI]*/
  274. }
  275. /*FI]*/
  276. return R;
  277. }
  278. /*No:RUN_CLASS.strip_used*/
  279. /*No:RUN_CLASS.id*/
  280. int fBC11class_general=0;
  281. T0*oBC11class_general=NULL;
  282.  
  283.  
  284. T0* r310class_general(void){
  285. if(fBC11class_general==0){
  286. fBC11class_general=1;
  287. oBC11class_general=r310class_with(((T0*)ms13_6412));
  288. }
  289. return oBC11class_general;}
  290.  
  291.  
  292. T0* r310at(T310* C,T0* a1){
  293. T0* R=NULL;
  294. T0* _to_key=NULL;
  295. _to_key=X77to_key(a1);
  296. /*[IF*/
  297. if(r317has((T317*)((C)->_feature_dictionary/*24*/),_to_key)){
  298. R=r317at((T317*)((C)->_feature_dictionary/*24*/),_to_key);
  299. }
  300. /*FI]*/
  301. return R;
  302. }
  303.  
  304.  
  305. T0* r310get_copy(T310* C){
  306. T0* R=NULL;
  307. R=r310get_rf_with(C,/*X87first_name*/((T0*)/*(IRF4.6first_name*/r79item(((T79*)(((T187*)(r22get_copy((T22*)(r310class_general()))))->_names/*8*/)),1)/*)*/));
  308. return R;
  309. }
  310. /*No:RUN_CLASS.at_run_time*/
  311. /*No:RUN_CLASS.add_rf*/
  312. /*No:RUN_CLASS.runnable_class_invariant_done*/
  313.  
  314.  
  315. void r310set_at_run_time(T310* C){
  316. T2 _i=0;
  317. T0* _rc=NULL;
  318. T0* _rcd=NULL;
  319. /*[IF*/
  320. if(!((C)->_at_run_time/*8*/)){
  321. C->_at_run_time=1;
  322. C->_compile_to_c_done=0;
  323. C->_runnable_class_invariant_done=0;
  324. r310add_running(C,(T0*)C);
  325. r59incr_magic_count((T59*)(oBC11small_eiffel));
  326. /*[IF*/
  327. if(X46is_reference((C)->_current_type/*0*/)){
  328. _rcd=oBC59run_class_dictionary;
  329. _i=1;
  330. while (!((_i)>((((T320*)_rcd))->_count/*36*/))) {
  331. _rc=r320item(((T320*)_rcd),_i);
  332. /*[IF*/
  333. if(r310is_running_of(C,_rc)){
  334. r310add_running(((T310*)_rc),(T0*)C);
  335. }
  336. /*FI]*/
  337. _i=(_i)+(1);
  338. }
  339. }
  340. /*FI]*/
  341. }
  342. /*FI]*/
  343. }
  344. /*No:RUN_CLASS.fatal_error*/
  345. /*No:RUN_CLASS.nb_errors*/
  346. /*No:RUN_CLASS.feature_dictionary*/
  347.  
  348.  
  349. void r310store_feature(T310* C,T0* a1){
  350. T0* _rf_key=NULL;
  351. _rf_key=X77to_key(/*X312name*/((T0*)(((T326*)a1))->_name/*16*/));
  352. /*[IF*/
  353. if(r317has((T317*)((C)->_feature_dictionary/*24*/),_rf_key)){
  354. }
  355. else{
  356. r317put((T317*)((C)->_feature_dictionary/*24*/),a1,_rf_key);
  357. r59incr_magic_count((T59*)(oBC11small_eiffel));
  358. }
  359. /*FI]*/
  360. }
  361. /*No:RUN_CLASS.us_general*/
  362. /*No:RUN_CLASS.set_strip_used*/
  363.  
  364.  
  365. T0* r310get_rf_with(T310* C,T0* a1){
  366. T0* R=NULL;
  367. T0* _wbc=NULL;
  368. T0* _fn2=NULL;
  369. _wbc=r69base_class((T69*)(X77start_position(a1)));
  370. _fn2=r22new_name_of((T22*)(r310base_class(C)),_wbc,a1);
  371. /*[IF*/
  372. if((_fn2)!=((void*)(a1))){
  373. r67add_position(X77start_position(a1));
  374. R=r310get_or_fatal_error(C,_fn2);
  375. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  376. /*]*/
  377. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  378. /*]*/
  379. /*]*/
  380. }
  381. else{
  382. R=r310get_or_fatal_error(C,_fn2);
  383. }
  384. /*FI]*/
  385. return R;
  386. }
  387. /*No:RUN_CLASS.current_type*/
  388.  
  389.  
  390. T0* r310class_with(T0* a1){
  391. T0* R=NULL;
  392. R=r59get_class(a1);
  393. return R;
  394. }
  395.  
  396.  
  397. void r310add_running(T310* C,T0* a1){
  398. /*[IF*/
  399. if(((C)->_running/*12*/)==((void*)(NULL))){
  400. C->_running=se_ma323(1,
  401. a1);
  402. }
  403. else{
  404. /*[IF*/
  405. if(!(r323fast_has((T323*)((C)->_running/*12*/),a1))){
  406. r323add_last((T323*)((C)->_running/*12*/),a1);
  407. }
  408. /*FI]*/
  409. }
  410. /*FI]*/
  411. }
  412.  
  413.  
  414. T6 r310is_running_of(T310* C,T0* a1){
  415. T6 R=0;
  416. T0* _t2=NULL;
  417. T0* _t1=NULL;
  418. /*[IF*/
  419. if((a1)==((void*)(C))){
  420. R=1;
  421. }
  422. else{
  423. _t1=(C)->_current_type/*0*/;
  424. _t2=(((T310*)a1))->_current_type/*0*/;
  425. /*[IF*/
  426. if((X46is_basic_eiffel_expanded(_t1))&&(X46is_basic_eiffel_expanded(_t2))){
  427. }
  428. else{
  429. R=X46is_a(_t1,_t2);
  430. /*[IF*/
  431. if(!(R)){
  432. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  433. /*]*/
  434. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  435. /*]*/
  436. /*]*/
  437. }
  438. /*FI]*/
  439. }
  440. /*FI]*/
  441. }
  442. /*FI]*/
  443. return R;
  444. }
  445.  
  446.  
  447. void r310add_client(T310* C,T0* a1){
  448. T2 _i=0;
  449. _i=r321fast_index_of((T321*)((C)->_actuals_clients/*36*/),a1);
  450. /*[IF*/
  451. if((_i)>(((T321*)((C)->_actuals_clients/*36*/))->_upper/*8*/)){
  452. r321add_last((T321*)((C)->_actuals_clients/*36*/),a1);
  453. }
  454. /*FI]*/
  455. }
  456. /*No:RUN_CLASS.fz_dot*/
  457. /*No:RUN_CLASS.compile_to_c_done*/
  458.  
  459.  
  460. void r310error(T0* a1,T0* a2){
  461. r67add_position(a1);
  462. r67error((T67*)(oBC11eh),a2);
  463. }
  464. /*No:RUN_CLASS.class_invariant*/
  465.  
  466.  
  467. void r310make(T310* C,T0* a1){
  468. T2 _i=0;
  469. T0* _rc=NULL;
  470. T0* _rcd=NULL;
  471. T0* _run_string=NULL;
  472. C->_compile_to_c_done=1;
  473. C->_current_type=a1;
  474. {T321*n=malloc(sizeof(*n));
  475. *n=M321;
  476. r321with_capacity(n,16);
  477. C->_actuals_clients=(T0*)n;
  478. }
  479. _run_string=X46run_time_mark(a1);
  480. C->_id=r95item((T95*)(r310id_provider()),_run_string);
  481. r320put((T320*)(oBC59run_class_dictionary),(T0*)C,_run_string);
  482. {T317*n=malloc(sizeof(*n));
  483. *n=M317;
  484. /*[IRF3.4make*/r317with_capacity(n,32);
  485. /*]*/
  486. C->_feature_dictionary=(T0*)n;
  487. }
  488. r59incr_magic_count((T59*)(oBC11small_eiffel));
  489. /*[IF*/
  490. if(X46is_expanded(a1)){
  491. r310set_at_run_time(C);
  492. r22check_expanded_with((T22*)(X46base_class(a1)),a1);
  493. }
  494. else{
  495. _rcd=oBC59run_class_dictionary;
  496. _i=1;
  497. while (!((_i)>((((T320*)_rcd))->_count/*36*/))) {
  498. _rc=r320item(((T320*)_rcd),_i);
  499. /*[IF*/
  500. if((((((T310*)_rc))->_at_run_time/*8*/)&&(X46is_reference((((T310*)_rc))->_current_type/*0*/)))&&(r310is_running_of(((T310*)_rc),(T0*)C))){
  501. r310add_running(C,_rc);
  502. }
  503. /*FI]*/
  504. _i=(_i)+(1);
  505. }
  506. }
  507. /*FI]*/
  508. }
  509. int fBC11id_provider=0;
  510. T0*oBC11id_provider=NULL;
  511.  
  512.  
  513. T0* r310id_provider(void){
  514. if(fBC11id_provider==0){
  515. fBC11id_provider=1;
  516. {T95*n=malloc(sizeof(*n));
  517. *n=M95;
  518. r95make(n);
  519. oBC11id_provider=(T0*)n;
  520. }
  521. }
  522. return oBC11id_provider;}
  523.  
  524.  
  525. void r310efnf(T310* C,T0* a1,T0* a2){
  526. /*[IRF3.6append*/{T0* b1=((T0*)ms310_16640);
  527. r7append((T7*)(oBC67explanation),b1);
  528. }/*]*/
  529. /*[IRF3.6append*/{T0* b1=X46run_time_mark((C)->_current_type/*0*/);
  530. r7append((T7*)(oBC67explanation),b1);
  531. }/*]*/
  532. /*[IRF3.6append*/{T0* b1=((T0*)ms310_23892);
  533. r7append((T7*)(oBC67explanation),b1);
  534. }/*]*/
  535. /*[IRF3.6append*/{T0* b1=X77to_string(a2);
  536. r7append((T7*)(oBC67explanation),b1);
  537. }/*]*/
  538. /*[IRF3.6append*/{T0* b1=((T0*)ms310_7130);
  539. r7append((T7*)(oBC67explanation),b1);
  540. }/*]*/
  541. /*[IRF3.6append*/{T0* b1=((T47*)((((T22*)a1))->_name/*24*/))->_to_string/*0*/;
  542. r7append((T7*)(oBC67explanation),b1);
  543. }/*]*/
  544. r310error(X77start_position(a2),((T0*)ms12_47));
  545. }
  546.  
  547.  
  548. T0* r310get_result_type(T310* C,T0* a1){
  549. T0* R=NULL;
  550. T0* _bc=NULL;
  551. T0* _f=NULL;
  552. T0* _fn2_key=NULL;
  553. T0* _rf=NULL;
  554. T0* _wbc=NULL;
  555. T0* _fn2=NULL;
  556. _wbc=r69base_class((T69*)(X77start_position(a1)));
  557. _fn2=r22new_name_of((T22*)(r310base_class(C)),_wbc,a1);
  558. _fn2_key=X77to_key(_fn2);
  559. /*[IF*/
  560. if(r317has((T317*)((C)->_feature_dictionary/*24*/),_fn2_key)){
  561. _rf=r317at((T317*)((C)->_feature_dictionary/*24*/),_fn2_key);
  562. R=X312result_type(_rf);
  563. /*[IF*/
  564. if(X46is_run_type(R)){
  565. R=X46run_type(R);
  566. }
  567. else{
  568. R=X46to_runnable(R,(C)->_current_type/*0*/);
  569. R=X46run_type(R);
  570. }
  571. /*FI]*/
  572. }
  573. else{
  574. _bc=r310base_class(C);
  575. _f=r22look_up_for(((T22*)_bc),(T0*)C,_fn2);
  576. /*[IF*/
  577. if((_f)==((void*)(NULL))){
  578. r310efnf(C,_bc,_fn2);
  579. r67add_position(X77start_position(a1));
  580. r67add_position(X77start_position(_fn2));
  581. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms310_22554);
  582. r67fatal_error((T67*)(oBC11eh),b1);
  583. }/*]*/
  584. }
  585. else{
  586. R=X87result_type(_f);
  587. /*[IF*/
  588. if((R)==((void*)(NULL))){
  589. r67add_position(X87start_position(_f));
  590. r67add_position(X77start_position(a1));
  591. r67add_position(X77start_position(_fn2));
  592. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms310_51011);
  593. r67fatal_error((T67*)(oBC11eh),b1);
  594. }/*]*/
  595. }
  596. else{
  597. R=X46to_runnable(R,(C)->_current_type/*0*/);
  598. R=X46run_type(R);
  599. }
  600. /*FI]*/
  601. }
  602. /*FI]*/
  603. }
  604. /*FI]*/
  605. return R;
  606. }
  607. /*No:E_INSPECT.clear_current_type*/
  608. /*No:E_INSPECT.nb_errors*/
  609. /*No:E_INSPECT.else_position*/
  610. /*No:E_INSPECT.start_position*/
  611.  
  612.  
  613. T0* r220twin(T220* C){
  614. T0* R=NULL;
  615. R=malloc(sizeof(*C));
  616. *((T220*)R)=*C;
  617. return R;
  618. }
  619.  
  620.  
  621. void r220add_when(T220* C,T0* a1){
  622. /*[IF*/
  623. if(((C)->_when_list/*12*/)==((void*)(NULL))){
  624. {T222*n=malloc(sizeof(*n));
  625. *n=M222;
  626. /*[IRF3.3make*/((((T222*)(n)))->_list)=(se_ma223(1,
  627. a1));
  628. /*]*/
  629. C->_when_list=(T0*)n;
  630. }
  631. }
  632. else{
  633. /*[IRF3.5add_last*/r223add_last(((T223*)(((T222*)((C)->_when_list/*12*/))->_list/*4*/)),a1);
  634. /*]*/
  635. }
  636. /*FI]*/
  637. }
  638. /*No:E_INSPECT.set_when_list*/
  639.  
  640.  
  641. T0* r220add_comment(T220* C,T0* a1){
  642. T0* R=NULL;
  643. /*[IF*/
  644. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
  645. R=(T0*)C;
  646. }
  647.  else {/*AT*//*[IF*/
  648. if((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(1)){
  649. R=(T0*)C;
  650. }
  651. else{
  652. {T213*n=malloc(sizeof(*n));
  653. *n=M213;
  654. r213make(n,(T0*)C,a1);
  655. R=(T0*)n;
  656. }
  657. }
  658. /*FI]*/
  659. }
  660. /*FI]*/
  661. return R;
  662. }
  663.  
  664.  
  665. void r220set_else_compound(T220* C,T0* a1,T0* a2){
  666. C->_else_position=a1;
  667. C->_else_compound=a2;
  668. }
  669. /*No:E_INSPECT.expression*/
  670. /*No:E_INSPECT.em1*/
  671.  
  672.  
  673. T0* r220to_runnable(T220* C,T0* a1){
  674. T0* R=NULL;
  675. T0* _wl=NULL;
  676. T0* _te=NULL;
  677. T0* _e=NULL;
  678. /*[IF*/
  679. if(((C)->_current_type/*24*/)==((void*)(NULL))){
  680. C->_current_type=a1;
  681. _e=X53to_runnable((C)->_expression/*8*/,a1);
  682. /*[IF*/
  683. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  684. C->_expression=_e;
  685. _te=X46run_type(X53result_type(_e));
  686. }
  687. /*FI]*/
  688. /*[IF*/
  689. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  690. /*[IF*/
  691. if(X46is_character(_te)){
  692. /*[IF*/
  693. if(((C)->_when_list/*12*/)!=((void*)(NULL))){
  694. C->_when_list=r222to_runnable_character((T222*)((C)->_when_list/*12*/),(T0*)C);
  695. /*[IF*/
  696. if(((C)->_when_list/*12*/)==((void*)(NULL))){
  697. r220error((C)->_start_position/*4*/,((T0*)ms220_11604));
  698. }
  699. /*FI]*/
  700. }
  701. /*FI]*/
  702. }
  703.  else if(X46is_integer(_te)){
  704. /*[IF*/
  705. if(((C)->_when_list/*12*/)!=((void*)(NULL))){
  706. C->_when_list=r222to_runnable_integer((T222*)((C)->_when_list/*12*/),(T0*)C);
  707. /*[IF*/
  708. if(((C)->_when_list/*12*/)==((void*)(NULL))){
  709. r220error((C)->_start_position/*4*/,((T0*)ms220_11604));
  710. }
  711. /*FI]*/
  712. }
  713. /*FI]*/
  714. }
  715. else{
  716. /*[IRF3.6append*/{T0* b1=((T0*)ms220_94840);
  717. r7append((T7*)(oBC67explanation),b1);
  718. }/*]*/
  719. r67add_type(_te,((T0*)ms220_18320));
  720. r67add_position((C)->_start_position/*4*/);
  721. r67print_as_error((T67*)(oBC11eh));
  722. }
  723. /*FI]*/
  724. }
  725. /*FI]*/
  726. /*[IF*/
  727. if(((C)->_else_compound/*20*/)!=((void*)(NULL))){
  728. C->_else_compound=r204to_runnable((T204*)((C)->_else_compound/*20*/),a1);
  729. }
  730. /*FI]*/
  731. R=(T0*)C;
  732. }
  733. else{
  734. R=r220twin(C);
  735. {T222*n=malloc(sizeof(*n));
  736. *n=M222;
  737. r222from_when_list(n,(C)->_when_list/*12*/);
  738. _wl=(T0*)n;
  739. }
  740. /*[IRF3.3set_when_list*/((((T220*)(((T220*)R))))->_when_list)=(_wl);
  741. /*]*/
  742. /*[IRF3.3clear_current_type*/((((T220*)(((T220*)R))))->_current_type)=(NULL);
  743. /*]*/
  744. R=r220to_runnable(((T220*)R),a1);
  745. }
  746. /*FI]*/
  747. return R;
  748. }
  749. /*No:E_INSPECT.else_compound*/
  750. /*No:E_INSPECT.current_type*/
  751.  
  752.  
  753. void r220error(T0* a1,T0* a2){
  754. r67add_position(a1);
  755. r67error((T67*)(oBC11eh),a2);
  756. }
  757. /*No:E_INSPECT.end_mark_comment*/
  758.  
  759.  
  760. void r220make(T220* C,T0* a1,T0* a2){
  761. C->_start_position=a1;
  762. C->_expression=a2;
  763. }
  764. /*No:E_INSPECT.includes*/
  765. /*No:E_INSPECT.when_list*/
  766. /*No:ARGUMENT_NAME1.start_position*/
  767. /*No:ARGUMENT_NAME1.to_string*/
  768.  
  769.  
  770. T0* r178twin(T178* C){
  771. T0* R=NULL;
  772. R=malloc(sizeof(*C));
  773. *((T178*)R)=*C;
  774. return R;
  775. }
  776.  
  777.  
  778. T0* r178add_comment(T178* C,T0* a1){
  779. T0* R=NULL;
  780. /*[IF*/
  781. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
  782. R=(T0*)C;
  783. }
  784. else{
  785. {T218*n=malloc(sizeof(*n));
  786. *n=M218;
  787. r218make(n,(T0*)C,a1);
  788. R=(T0*)n;
  789. }
  790. }
  791. /*FI]*/
  792. return R;
  793. }
  794. /*No:ARGUMENT_NAME1.name_clash*/
  795.  
  796.  
  797. T2 r178to_integer(T178* C){
  798. T2 R=0;
  799. r178error((C)->_start_position/*4*/,((T0*)ms12_45846));
  800. return R;
  801. }
  802. /*No:ARGUMENT_NAME1.rank*/
  803.  
  804.  
  805. T0* r178to_runnable(T178* C,T0* a1){
  806. T0* R=NULL;
  807. T0* _rt=NULL;
  808. _rt=X46to_runnable((C)->_result_type/*12*/,a1);
  809. /*[IF*/
  810. if((_rt)==((void*)(NULL))){
  811. r67add_position(X46start_position((C)->_result_type/*12*/));
  812. r178error((C)->_start_position/*4*/,((T0*)ms178_13065));
  813. }
  814. /*FI]*/
  815. /*[IF*/
  816. if(((C)->_result_type/*12*/)==((void*)(_rt))){
  817. R=(T0*)C;
  818. }
  819. else{
  820. R=r178twin(C);
  821. /*[IRF3.3set_result_type*/((((T178*)(((T178*)R))))->_result_type)=(_rt);
  822. /*]*/
  823. }
  824. /*FI]*/
  825. return R;
  826. }
  827.  
  828.  
  829. T0* r178written_in(T178* C){
  830. T0* R=NULL;
  831. T0* _sp=NULL;
  832. _sp=(C)->_start_position/*4*/;
  833. /*[IF*/
  834. if((_sp)!=((void*)(NULL))){
  835. R=(((T69*)_sp))->_base_class_name/*0*/;
  836. }
  837. /*FI]*/
  838. return R;
  839. }
  840. /*No:ARGUMENT_NAME1.fz_iinaiv*/
  841. /*No:ARGUMENT_NAME1.set_result_type*/
  842.  
  843.  
  844. void r178name_clash_for(T178* C,T0* a1,T0* a2){
  845. T0* _bc=NULL;
  846. T0* _rc=NULL;
  847. T0* _rf=NULL;
  848. _bc=r178base_class_written(C);
  849. /*[IF*/
  850. if(r22has_simple_feature_name(((T22*)_bc),(C)->_to_string/*8*/)){
  851. _rc=X46run_class(a1);
  852. _rf=r310get_feature_with(((T310*)_rc),(C)->_to_string/*8*/);
  853. /*[IF*/
  854. if((_rf)!=((void*)(NULL))){
  855. r67add_position(X312start_position(_rf));
  856. }
  857. /*FI]*/
  858. r178error((C)->_start_position/*4*/,a2);
  859. }
  860. /*FI]*/
  861. }
  862. /*No:ARGUMENT_NAME1.result_type*/
  863.  
  864.  
  865. void r178error(T0* a1,T0* a2){
  866. r67add_position(a1);
  867. r67error((T67*)(oBC11eh),a2);
  868. }
  869. /*No:ARGUMENT_NAME1.set_rank*/
  870. /*No:ARGUMENT_NAME1.precedence*/
  871.  
  872.  
  873. void r178make(T178* C,T0* a1,T0* a2){
  874. C->_start_position=a1;
  875. C->_to_string=r78item(a2);
  876. }
  877.  
  878.  
  879. void r178bracketed_short(T178* C){
  880. r39hook_or((T39*)(oBC11short_print),((T0*)ms53_6792),((T0*)ms53_41));
  881. r178short(C);
  882. r39hook_or((T39*)(oBC11short_print),((T0*)ms53_8645),((T0*)ms53_42));
  883. }
  884. /*No:ARGUMENT_NAME1.is_current*/
  885. /*No:ARGUMENT_NAME1.is_void*/
  886.  
  887.  
  888. void r178short_target(T178* C){
  889. r178short(C);
  890. /*[IRF3.6a_dot*/{T39* C1=(T39*)(oBC11short_print);
  891. r39hook_or(C1,((T0*)ms39_999a),((T0*)ms12_47));
  892. }/*]*/
  893. }
  894.  
  895.  
  896. T0* r178base_class_written(T178* C){
  897. T0* R=NULL;
  898. R=r47base_class((T47*)(r178written_in(C)));
  899. return R;
  900. }
  901.  
  902.  
  903. void r178short(T178* C){
  904. T3 _c=0;
  905. T2 _i=0;
  906. r39hook((T39*)(oBC11short_print),((T0*)ms170_837));
  907. _i=1;
  908. while (!((_i)>(((T7*)((C)->_to_string/*8*/))->_count/*4*/))) {
  909. _c=/*(IRF4.6item*/(((T7*)((C)->_to_string/*8*/))->_storage/*0*/)[(_i)-(1)]/*)*/;
  910. /*[IF*/
  911. if((_c)==('\137')){
  912. r39hook_or((T39*)(oBC11short_print),((T0*)ms170_894),((T0*)ms170_96));
  913. }
  914. else{
  915. /*[IRF3.6a_character*/{T3 b1=_c;
  916. /*[IRF3.6put_character*/{T38* C2=(T38*)(oBC1std_output);
  917. T3 c1=b1;
  918. putc(c1,((FILE*)(stdout)));
  919. }/*]*/
  920. }/*]*/
  921. }
  922. /*FI]*/
  923. _i=(_i)+(1);
  924. }
  925. r39hook((T39*)(oBC11short_print),((T0*)ms170_834));
  926. }
  927. /*No:ARGUMENT_NAME1.atomic_precedence*/
  928. /*No:PROC_CALL_1.feature_name*/
  929.  
  930.  
  931. void r151run_feature_match(T151* C,T0* a1){
  932. r151run_feature_has_no_result(C);
  933. r136match_with((T136*)((C)->_arguments/*16*/),(C)->_run_feature/*12*/,a1);
  934. }
  935. /*No:PROC_CALL_1.arguments*/
  936.  
  937.  
  938. T0* r151runnable_expression(T0* a1,T0* a2){
  939. T0* R=NULL;
  940. R=X53to_runnable(a1,a2);
  941. /*[IF*/
  942. if((R)==((void*)(NULL))){
  943. r67add_position(X53start_position(a1));
  944. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms105_16515);
  945. r67fatal_error((T67*)(oBC11eh),b1);
  946. }/*]*/
  947. }
  948. /*FI]*/
  949. return R;
  950. }
  951.  
  952.  
  953. T0* r151start_position(T151* C){
  954. T0* R=NULL;
  955. R=X77start_position((C)->_feature_name/*8*/);
  956. return R;
  957. }
  958.  
  959.  
  960. T0* r151add_comment(T151* C,T0* a1){
  961. T0* R=NULL;
  962. /*[IF*/
  963. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
  964. R=(T0*)C;
  965. }
  966. /*AF*/else{
  967. {T213*n=malloc(sizeof(*n));
  968. *n=M213;
  969. r213make(n,(T0*)C,a1);
  970. R=(T0*)n;
  971. }
  972. }
  973. /*FI]*/
  974. return R;
  975. }
  976.  
  977.  
  978. void r151run_feature_has_no_result(T151* C){
  979. /*[IF*/
  980. if((X312result_type((C)->_run_feature/*12*/))!=((void*)(NULL))){
  981. r67add_position(X312start_position((C)->_run_feature/*12*/));
  982. r67add_position(X77start_position((C)->_feature_name/*8*/));
  983. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms149_67122);
  984. r67fatal_error((T67*)(oBC11eh),b1);
  985. }/*]*/
  986. }
  987. /*FI]*/
  988. }
  989.  
  990.  
  991. T0* r151to_runnable(T151* C,T0* a1){
  992. T0* R=NULL;
  993. T0* _rf=NULL;
  994. T0* _a=NULL;
  995. T0* _t=NULL;
  996. _t=r151runnable_expression((C)->_target/*4*/,a1);
  997. _a=r151runnable_args((C)->_arguments/*16*/,a1);
  998. _rf=r151run_feature_for(C,_t,a1);
  999. /*[IF*/
  1000. if(((C)->_run_feature/*12*/)==((void*)(NULL))){
  1001. C->_target=_t;
  1002. C->_arguments=_a;
  1003. C->_run_feature=_rf;
  1004. r151run_feature_match(C,a1);
  1005. R=(T0*)C;
  1006. }
  1007.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*16*/)))){
  1008. R=(T0*)C;
  1009. }
  1010. else{
  1011. {T151*n=malloc(sizeof(*n));
  1012. *n=M151;
  1013. r151with(n,_t,(C)->_feature_name/*8*/,_a,_rf,a1);
  1014. R=(T0*)n;
  1015. }
  1016. }
  1017. /*FI]*/
  1018. return R;
  1019. }
  1020. /*No:PROC_CALL_1.fz_bad_argument*/
  1021. /*No:PROC_CALL_1.set_run_feature*/
  1022.  
  1023.  
  1024. T0* r151run_feature_for(T151* C,T0* a1,T0* a2){
  1025. T0* R=NULL;
  1026. T0* _rc=NULL;
  1027. _rc=X46run_class(X53result_type(a1));
  1028. R=r310get_rf(((T310*)_rc),a1,(C)->_feature_name/*8*/,a2);
  1029. return R;
  1030. }
  1031. /*No:PROC_CALL_1.target*/
  1032. /*No:PROC_CALL_1.run_feature*/
  1033. /*No:PROC_CALL_1.end_mark_comment*/
  1034.  
  1035.  
  1036. void r151make(T151* C,T0* a1,T0* a2,T0* a3){
  1037. C->_target=a1;
  1038. C->_feature_name=a2;
  1039. C->_arguments=a3;
  1040. }
  1041.  
  1042.  
  1043. T0* r151runnable_args(T0* a1,T0* a2){
  1044. T0* R=NULL;
  1045. R=r136to_runnable(((T136*)a1),a2);
  1046. /*[IF*/
  1047. if((R)==((void*)(NULL))){
  1048. r67add_position(r136start_position(((T136*)a1)));
  1049. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_13065);
  1050. r67fatal_error((T67*)(oBC11eh),b1);
  1051. }/*]*/
  1052. }
  1053. /*FI]*/
  1054. return R;
  1055. }
  1056.  
  1057.  
  1058. T0* r151make_runnable(T151* C,T0* a1,T0* a2,T0* a3){
  1059. T0* R=NULL;
  1060. /*[IF*/
  1061. if(((C)->_run_feature/*12*/)==((void*)(NULL))){
  1062. C->_target=a1;
  1063. C->_arguments=a2;
  1064. C->_run_feature=a3;
  1065. R=(T0*)C;
  1066. }
  1067. else{
  1068. {T151*n=malloc(sizeof(*n));
  1069. *n=M151;
  1070. r151make(n,a1,(C)->_feature_name/*8*/,a2);
  1071. R=(T0*)n;
  1072. }
  1073. /*[IRF3.3set_run_feature*/((((T151*)(((T151*)R))))->_run_feature)=(a3);
  1074. /*]*/
  1075. }
  1076. /*FI]*/
  1077. return R;
  1078. }
  1079. /*No:PROC_CALL_1.arg_count*/
  1080.  
  1081.  
  1082. void r151with(T151* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1083. C->_target=a1;
  1084. C->_feature_name=a2;
  1085. C->_arguments=a3;
  1086. C->_run_feature=a4;
  1087. r151run_feature_match(C,a5);
  1088. }
  1089. /*No:PROC_CALL_1.fatal_error*/
  1090. /*No:CALL_INFIX_INT_REM.feature_name*/
  1091.  
  1092.  
  1093. T0* r121start_position(T121* C){
  1094. T0* R=NULL;
  1095. R=((T125*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  1096. return R;
  1097. }
  1098.  
  1099.  
  1100. T0* r121add_comment(T121* C,T0* a1){
  1101. T0* R=NULL;
  1102. /*[IF*/
  1103. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
  1104. R=(T0*)C;
  1105. }
  1106. else{
  1107. {T218*n=malloc(sizeof(*n));
  1108. *n=M218;
  1109. r218make(n,(T0*)C,a1);
  1110. R=(T0*)n;
  1111. }
  1112. }
  1113. /*FI]*/
  1114. return R;
  1115. }
  1116.  
  1117.  
  1118. T2 r121to_integer(T121* C){
  1119. T2 R=0;
  1120. r121error(r121start_position(C),((T0*)ms12_45846));
  1121. return R;
  1122. }
  1123.  
  1124.  
  1125. T0* r121to_runnable(T121* C,T0* a1){
  1126. T0* R=NULL;
  1127. T0* _rf=NULL;
  1128. T0* _tbee=NULL;
  1129. T0* _at=NULL;
  1130. T0* _tt=NULL;
  1131. T0* _a=NULL;
  1132. T0* _t=NULL;
  1133. _t=r121runnable_expression((C)->_target/*4*/,a1);
  1134. _a=r121runnable_args((C)->_arguments/*8*/,a1);
  1135. _tt=X53result_type(_t);
  1136. _at=X53result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1137. /*[IF*/
  1138. /*AF*//*AE*/
  1139. /*FI]*/
  1140. _rf=r121run_feature_for(C,_t,a1);
  1141. /*[IF*/
  1142. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  1143. C->_target=_t;
  1144. C->_arguments=_a;
  1145. C->_run_feature=_rf;
  1146. r121run_feature_match(C,a1);
  1147. R=(T0*)C;
  1148. }
  1149.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
  1150. R=(T0*)C;
  1151. }
  1152. else{
  1153. {T121*n=malloc(sizeof(*n));
  1154. *n=M121;
  1155. r121with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
  1156. R=(T0*)n;
  1157. }
  1158. }
  1159. /*FI]*/
  1160. return R;
  1161. }
  1162. /*No:CALL_INFIX_INT_REM.fz_bad_argument*/
  1163. /*No:CALL_INFIX_INT_REM.fz_iinaiv*/
  1164.  
  1165.  
  1166. T0* r121result_type(T121* C){
  1167. T0* R=NULL;
  1168. T0* _tla=NULL;
  1169. R=X312result_type((C)->_run_feature/*16*/);
  1170. /*[IF*/
  1171. if(X46is_like_current(R)){
  1172. R=/*X312current_type*/((T0*)((T326*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  1173. }
  1174. else{
  1175. _tla=R;
  1176. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1177. case 246: 
  1178. break;
  1179. default:
  1180. _tla=NULL;
  1181. };/*[IF*/
  1182. if((_tla)!=((void*)(NULL))){
  1183. R=X46run_type(X53result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
  1184. }
  1185. /*FI]*/
  1186. }
  1187. /*FI]*/
  1188. return R;
  1189. }
  1190. /*No:CALL_INFIX_INT_REM.run_feature*/
  1191.  
  1192.  
  1193. T0* r121runnable_args(T0* a1,T0* a2){
  1194. T0* R=NULL;
  1195. R=r136to_runnable(((T136*)a1),a2);
  1196. /*[IF*/
  1197. if((R)==((void*)(NULL))){
  1198. r67add_position(r136start_position(((T136*)a1)));
  1199. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_13065);
  1200. r67fatal_error((T67*)(oBC11eh),b1);
  1201. }/*]*/
  1202. }
  1203. /*FI]*/
  1204. return R;
  1205. }
  1206.  
  1207.  
  1208. void r121bracketed_short(T121* C){
  1209. r39hook_or((T39*)(oBC11short_print),((T0*)ms53_6792),((T0*)ms53_41));
  1210. r121short(C);
  1211. r39hook_or((T39*)(oBC11short_print),((T0*)ms53_8645),((T0*)ms53_42));
  1212. }
  1213.  
  1214.  
  1215. void r121with(T121* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1216. C->_target=a1;
  1217. C->_feature_name=a2;
  1218. C->_arguments=a3;
  1219. C->_run_feature=a4;
  1220. r121run_feature_match(C,a5);
  1221. }
  1222. /*No:CALL_INFIX_INT_REM.fatal_error*/
  1223.  
  1224.  
  1225. void r121run_feature_match(T121* C,T0* a1){
  1226. r121run_feature_has_result(C);
  1227. r136match_with((T136*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
  1228. }
  1229. /*No:CALL_INFIX_INT_REM.arguments*/
  1230.  
  1231.  
  1232. T0* r121runnable_expression(T0* a1,T0* a2){
  1233. T0* R=NULL;
  1234. R=X53to_runnable(a1,a2);
  1235. /*[IF*/
  1236. if((R)==((void*)(NULL))){
  1237. r67add_position(X53start_position(a1));
  1238. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms105_16515);
  1239. r67fatal_error((T67*)(oBC11eh),b1);
  1240. }/*]*/
  1241. }
  1242. /*FI]*/
  1243. return R;
  1244. }
  1245. /*No:CALL_INFIX_INT_REM.implicit_cast*/
  1246. /*No:CALL_INFIX_INT_REM.us_backslash_backslash*/
  1247. /*No:CALL_INFIX_INT_REM.arg1*/
  1248.  
  1249.  
  1250. void r121run_feature_has_result(T121* C){
  1251. /*[IF*/
  1252. if((X312result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
  1253. r67add_position(X312start_position((C)->_run_feature/*16*/));
  1254. r67add_position(((T125*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  1255. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms104_53650);
  1256. r67fatal_error((T67*)(oBC11eh),b1);
  1257. }/*]*/
  1258. }
  1259. /*FI]*/
  1260. }
  1261.  
  1262.  
  1263. T0* r121run_feature_for(T121* C,T0* a1,T0* a2){
  1264. T0* R=NULL;
  1265. T0* _rc=NULL;
  1266. _rc=X46run_class(X53result_type(a1));
  1267. R=r310get_rf(((T310*)_rc),a1,(C)->_feature_name/*12*/,a2);
  1268. return R;
  1269. }
  1270. /*No:CALL_INFIX_INT_REM.target*/
  1271.  
  1272.  
  1273. void r121error(T0* a1,T0* a2){
  1274. r67add_position(a1);
  1275. r67error((T67*)(oBC11eh),a2);
  1276. }
  1277. /*No:CALL_INFIX_INT_REM.precedence*/
  1278.  
  1279.  
  1280. void r121make(T121* C,T0* a1,T0* a2,T0* a3){
  1281. C->_target=a1;
  1282. {T125*n=malloc(sizeof(*n));
  1283. *n=M125;
  1284. r125make(n,r121operator(),a2);
  1285. C->_feature_name=(T0*)n;
  1286. }
  1287. {T136*n=malloc(sizeof(*n));
  1288. *n=M136;
  1289. /*[IRF3.3make_1*/((((T136*)(n)))->_first_one)=(a3);
  1290. /*]*/
  1291. C->_arguments=(T0*)n;
  1292. }
  1293. }
  1294. /*No:CALL_INFIX_INT_REM.is_current*/
  1295. /*No:CALL_INFIX_INT_REM.short_print_feature_name*/
  1296. /*No:CALL_INFIX_INT_REM.is_void*/
  1297.  
  1298.  
  1299. T0* r121operator(void){
  1300. T0* R=NULL;
  1301. R=((T0*)ms13_374);
  1302. return R;
  1303. }
  1304.  
  1305.  
  1306. void r121short_target(T121* C){
  1307. r121bracketed_short(C);
  1308. /*[IRF3.6a_dot*/{T39* C1=(T39*)(oBC11short_print);
  1309. r39hook_or(C1,((T0*)ms39_999a),((T0*)ms12_47));
  1310. }/*]*/
  1311. }
  1312.  
  1313.  
  1314. void r121short(T121* C){
  1315. /*[IF*/
  1316. if((X53precedence((C)->_target/*4*/))==(13)){
  1317. X53short((C)->_target/*4*/);
  1318. /*[IRF3.6short_print_feature_name*/{T121* C1=C;
  1319. r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
  1320. }/*]*/
  1321. /*[IF*/
  1322. if((X53precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))==(13)){
  1323. X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1324. }
  1325.  else if((8)>=(X53precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
  1326. X53bracketed_short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1327. }
  1328. else{
  1329. X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1330. }
  1331. /*FI]*/
  1332. }
  1333.  else if((X53precedence((C)->_target/*4*/))<(8)){
  1334. X53bracketed_short((C)->_target/*4*/);
  1335. /*[IRF3.6short_print_feature_name*/{T121* C1=C;
  1336. r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
  1337. }/*]*/
  1338. X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1339. }
  1340. else{
  1341. X53short((C)->_target/*4*/);
  1342. /*[IRF3.6short_print_feature_name*/{T121* C1=C;
  1343. r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
  1344. }/*]*/
  1345. X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1346. }
  1347. /*FI]*/
  1348. }
  1349. /*No:CALL_INFIX_INT_REM.atomic_precedence*/
  1350. /*No:WHEN_LIST.nb_errors*/
  1351.  
  1352.  
  1353. T0* r222to_runnable_integer(T222* C,T0* a1){
  1354. T0* R=NULL;
  1355. T0* _e_when=NULL;
  1356. T2 _i=0;
  1357. /*[IF*/
  1358. if(((C)->_e_inspect/*0*/)==((void*)(NULL))){
  1359. C->_e_inspect=a1;
  1360. _i=1;
  1361. while (!(((_i)>(((T223*)((C)->_list/*4*/))->_upper/*8*/))||((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)>(0)))) {
  1362. _e_when=r221to_runnable_integer((T221*)(r223item((T223*)((C)->_list/*4*/),_i)),(T0*)C);
  1363. /*[IF*/
  1364. if((_e_when)==((void*)(NULL))){
  1365. r222error(r222start_position(C),((T0*)ms222_15022));
  1366. }
  1367. else{
  1368. /*[IRF3.6put*/{T223* C1=(T223*)((C)->_list/*4*/);
  1369. T0* b1=_e_when;
  1370. T2 b2=_i;
  1371. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  1372. }/*]*/
  1373. }
  1374. /*FI]*/
  1375. _i=(_i)+(1);
  1376. }
  1377. R=(T0*)C;
  1378. }
  1379. else{
  1380. {T222*n=malloc(sizeof(*n));
  1381. *n=M222;
  1382. r222from_when_list(n,(T0*)C);
  1383. R=(T0*)n;
  1384. }
  1385. R=r222to_runnable_integer(((T222*)R),a1);
  1386. }
  1387. /*FI]*/
  1388. return R;
  1389. }
  1390.  
  1391.  
  1392. T0* r222start_position(T222* C){
  1393. T0* R=NULL;
  1394. R=((T221*)(r223item((T223*)((C)->_list/*4*/),1)))->_start_position/*0*/;
  1395. return R;
  1396. }
  1397. /*No:WHEN_LIST.add_last*/
  1398. /*No:WHEN_LIST.em1*/
  1399.  
  1400.  
  1401. T6 r222includes_integer(T222* C,T2 a1){
  1402. T6 R=0;
  1403. T2 _i=0;
  1404. _i=1;
  1405. while (!((R)||((_i)>(((T223*)((C)->_list/*4*/))->_upper/*8*/)))) {
  1406. R=r221includes_integer((T221*)(r223item((T223*)((C)->_list/*4*/),_i)),a1);
  1407. _i=(_i)+(1);
  1408. }
  1409. return R;
  1410. }
  1411.  
  1412.  
  1413. void r222from_when_list(T222* C,T0* a1){
  1414. T0* _e_when=NULL;
  1415. T2 _i=0;
  1416. C->_list=r223twin((T223*)((((T222*)a1))->_list/*4*/));
  1417. _i=1;
  1418. while (!((_i)>(((T223*)((C)->_list/*4*/))->_upper/*8*/))) {
  1419. {T221*n=malloc(sizeof(*n));
  1420. *n=M221;
  1421. r221from_e_when(n,r223item((T223*)((C)->_list/*4*/),_i));
  1422. _e_when=(T0*)n;
  1423. }
  1424. /*[IRF3.6put*/{T223* C1=(T223*)((C)->_list/*4*/);
  1425. T0* b1=_e_when;
  1426. T2 b2=_i;
  1427. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  1428. }/*]*/
  1429. _i=(_i)+(1);
  1430. }
  1431. }
  1432. /*No:WHEN_LIST.e_inspect*/
  1433.  
  1434.  
  1435. void r222error(T0* a1,T0* a2){
  1436. r67add_position(a1);
  1437. r67error((T67*)(oBC11eh),a2);
  1438. }
  1439. /*No:WHEN_LIST.make*/
  1440. /*No:WHEN_LIST.list*/
  1441.  
  1442.  
  1443. T0* r222to_runnable_character(T222* C,T0* a1){
  1444. T0* R=NULL;
  1445. T0* _e_when=NULL;
  1446. T2 _i=0;
  1447. /*[IF*/
  1448. if(((C)->_e_inspect/*0*/)==((void*)(NULL))){
  1449. C->_e_inspect=a1;
  1450. _i=1;
  1451. while (!(((_i)>(((T223*)((C)->_list/*4*/))->_upper/*8*/))||((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)>(0)))) {
  1452. _e_when=r221to_runnable_character((T221*)(r223item((T223*)((C)->_list/*4*/),_i)),(T0*)C);
  1453. /*[IF*/
  1454. if((_e_when)==((void*)(NULL))){
  1455. r222error(r222start_position(C),((T0*)ms222_15022));
  1456. }
  1457. else{
  1458. /*[IRF3.6put*/{T223* C1=(T223*)((C)->_list/*4*/);
  1459. T0* b1=_e_when;
  1460. T2 b2=_i;
  1461. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  1462. }/*]*/
  1463. }
  1464. /*FI]*/
  1465. _i=(_i)+(1);
  1466. }
  1467. R=(T0*)C;
  1468. }
  1469. else{
  1470. {T222*n=malloc(sizeof(*n));
  1471. *n=M222;
  1472. r222from_when_list(n,(T0*)C);
  1473. R=(T0*)n;
  1474. }
  1475. R=r222to_runnable_character(((T222*)R),a1);
  1476. }
  1477. /*FI]*/
  1478. return R;
  1479. }
  1480.  
  1481.  
  1482. T0* r271run_require(T0* a1){
  1483. T0* R=NULL;
  1484. T0* _ct=NULL;
  1485. T0* _ar=NULL;
  1486. T0* _hc=NULL;
  1487. T0* _er=NULL;
  1488. T0* _r=NULL;
  1489. T2 _i=0;
  1490. r315clear((T315*)(oBC87require_collector));
  1491. _ct=/*X312current_type*/((T0*)(((T326*)a1))->_current_type/*4*/);
  1492. r22collect_for((T22*)(X46base_class(_ct)),1,/*X312name*/((T0*)(((T326*)a1))->_name/*16*/));
  1493. /*[IF*/
  1494. if(!(r315empty((T315*)(oBC87require_collector)))){
  1495. _i=1;
  1496. while (!((_i)>(((T315*)(oBC87require_collector))->_upper/*8*/))) {
  1497. _er=r315item((T315*)(oBC87require_collector),_i);
  1498. _hc=(((T272*)_er))->_header_comment/*4*/;
  1499. /*[IF*/
  1500. if(!(/*(IRF4.7empty*/((((T272*)_er))->_list/*8*/)==(NULL)/*)*/)){
  1501. _r=r271runnable((((T272*)_er))->_list/*8*/,_ct,a1);
  1502. /*[IF*/
  1503. if((_r)!=((void*)(NULL))){
  1504. {T272*n=malloc(sizeof(*n));
  1505. *n=M272;
  1506. r272make_runnable(n,_r,_ct,a1);
  1507. _er=(T0*)n;
  1508. }
  1509. /*[IRF3.3set_header_comment*/((((T272*)(((T272*)_er))))->_header_comment)=(_hc);
  1510. /*]*/
  1511. /*[IF*/
  1512. if((_ar)==((void*)(NULL))){
  1513. _ar=se_ma315(1,
  1514. _er);
  1515. }
  1516. else{
  1517. r315add_last(((T315*)_ar),_er);
  1518. }
  1519. /*FI]*/
  1520. }
  1521. /*FI]*/
  1522. }
  1523. /*FI]*/
  1524. _i=(_i)+(1);
  1525. }
  1526. /*[IF*/
  1527. if((_ar)!=((void*)(NULL))){
  1528. {T314*n=malloc(sizeof(*n));
  1529. *n=M314;
  1530. /*[IRF3.3make*/((((T314*)(n)))->_list)=(_ar);
  1531. /*]*/
  1532. R=(T0*)n;
  1533. }
  1534. }
  1535. /*FI]*/
  1536. }
  1537. /*FI]*/
  1538. return R;
  1539. }
  1540. /*No:DEFERRED_PROCEDURE.base_class*/
  1541.  
  1542.  
  1543. void r271set_rescue_compound(T271* C,T0* a1){
  1544. /*[IF*/
  1545. if((a1)!=((void*)(NULL))){
  1546. r67add_position(r204start_position(((T204*)a1)));
  1547. }
  1548. else{
  1549. r67add_position(r271start_position(C));
  1550. }
  1551. /*FI]*/
  1552. /*[IRF3.6append*/{T0* b1=((T0*)ms270_125161);
  1553. r7append((T7*)(oBC67explanation),b1);
  1554. }/*]*/
  1555. r67print_as_fatal_error((T67*)(oBC11eh));
  1556. }
  1557.  
  1558.  
  1559. T0* r271start_position(T271* C){
  1560. T0* R=NULL;
  1561. R=X77start_position(/*(IRF4.6first_name*/r79item(((T79*)((C)->_names/*8*/)),1)/*)*/);
  1562. return R;
  1563. }
  1564.  
  1565.  
  1566. T6 r271is_merge_with(T271* C,T0* a1,T0* a2){
  1567. T6 R=0;
  1568. R=1;
  1569. /*[IF*/
  1570. if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X87result_type(a1)))){
  1571. /*[IF*/
  1572. {/*AT*/R=0;
  1573. }
  1574. /*FI]*/
  1575. }
  1576. /*FI]*/
  1577. /*[IF*/
  1578. if(((C)->_arguments/*20*/)!=((void*)(X87arguments(a1)))){
  1579. /*[IF*/
  1580. if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X87arguments(a1))==((void*)(NULL)))){
  1581. R=0;
  1582. }
  1583.  else if((/*(IRF4.6count*/(((T179*)(((T175*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T179*)(((T175*)(X87arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  1584. R=0;
  1585. }
  1586. /*FI]*/
  1587. }
  1588. /*FI]*/
  1589. /*[IF*/
  1590. if(R){
  1591. /*[IF*/
  1592. /*AF*//*AE*/
  1593. /*FI]*/
  1594. /*[IF*/
  1595. if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
  1596. R=r175is_a_in((T175*)((C)->_arguments/*20*/),X87arguments(a1),a2);
  1597. }
  1598. /*FI]*/
  1599. /*[IF*/
  1600. if(!(R)){
  1601. R=1;
  1602. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  1603. /*]*/
  1604. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  1605. /*]*/
  1606. /*]*/
  1607. /*[IF*/
  1608. /*AF*//*AE*/
  1609. /*FI]*/
  1610. /*[IF*/
  1611. if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
  1612. R=r175is_a_in((T175*)(X87arguments(a1)),(C)->_arguments/*20*/,a2);
  1613. }
  1614. /*FI]*/
  1615. }
  1616. /*FI]*/
  1617. }
  1618. /*FI]*/
  1619. /*[IF*/
  1620. if(R){
  1621. r271merge_header_comments(C,a1);
  1622. }
  1623. /*FI]*/
  1624. return R;
  1625. }
  1626.  
  1627.  
  1628. T0* r271runnable(T0* a1,T0* a2,T0* a3){
  1629. T0* R=NULL;
  1630. T0* _a=NULL;
  1631. T2 _i=0;
  1632. /*[IF*/
  1633. if(!(r50empty(((T50*)a1)))){
  1634. R=r50twin(((T50*)a1));
  1635. _i=(((T50*)R))->_upper/*8*/;
  1636. while (!((_i)==(0))) {
  1637. r59push((T59*)(oBC11small_eiffel),a3);
  1638. _a=r49to_runnable((T49*)(r50item(((T50*)R),_i)),a2);
  1639. /*[IF*/
  1640. if((_a)==((void*)(NULL))){
  1641. r271error(r49start_position((T49*)(r50item(((T50*)R),_i))),((T0*)ms12_14266));
  1642. }
  1643. else{
  1644. /*[IRF3.6put*/{T50* C1=((T50*)R);
  1645. T0* b1=_a;
  1646. T2 b2=_i;
  1647. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  1648. }/*]*/
  1649. }
  1650. /*FI]*/
  1651. r59pop((T59*)(oBC11small_eiffel));
  1652. _i=(_i)-(1);
  1653. }
  1654. }
  1655. /*FI]*/
  1656. return R;
  1657. }
  1658. /*No:DEFERRED_PROCEDURE.first_name*/
  1659. /*No:DEFERRED_PROCEDURE.em1*/
  1660. /*No:DEFERRED_PROCEDURE.header_comment*/
  1661. /*No:DEFERRED_PROCEDURE.names*/
  1662. /*No:DEFERRED_PROCEDURE.fz_03*/
  1663. /*No:DEFERRED_PROCEDURE.result_type*/
  1664. /*No:DEFERRED_PROCEDURE.code_require*/
  1665. /*No:DEFERRED_PROCEDURE.make_e_feature*/
  1666.  
  1667.  
  1668. void r271add_into(T271* C,T0* a1){
  1669. T0* _fn=NULL;
  1670. T2 _i=0;
  1671. C->_base_class=r69base_class((T69*)(X77start_position(r79item((T79*)((C)->_names/*8*/),1))));
  1672. _i=1;
  1673. while (!((_i)>(r79count((T79*)((C)->_names/*8*/))))) {
  1674. _fn=r79item((T79*)((C)->_names/*8*/),_i);
  1675. /*[IF*/
  1676. if(r86has(((T86*)a1),X77to_key(_fn))){
  1677. _fn=/*X87first_name*/((T0*)/*(IRF4.6first_name*/r79item(((T79*)(((T187*)(r86at(((T86*)a1),X77to_key(_fn))))->_names/*8*/)),1)/*)*/);
  1678. r67add_position(X77start_position(_fn));
  1679. r67add_position(X77start_position(r79item((T79*)((C)->_names/*8*/),_i)));
  1680. r67error((T67*)(oBC11eh),((T0*)ms87_41905));
  1681. /*[IRF3.6append*/{T0* b1=X77to_string(_fn);
  1682. r7append((T7*)(oBC67explanation),b1);
  1683. }/*]*/
  1684. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  1685. }
  1686. else{
  1687. r86put(((T86*)a1),(T0*)C,X77to_key(_fn));
  1688. }
  1689. /*FI]*/
  1690. _i=(_i)+(1);
  1691. }
  1692. }
  1693.  
  1694.  
  1695. T6 r271can_hide(T271* C,T0* a1,T0* a2){
  1696. T6 R=0;
  1697. /*[IF*/
  1698. if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X87result_type(a1)))){
  1699. /*[IF*/
  1700. {/*AT*/r67add_position(X87start_position(a1));
  1701. r271error(r271start_position(C),((T0*)ms87_64647));
  1702. }
  1703. /*FI]*/
  1704. }
  1705. /*FI]*/
  1706. /*[IF*/
  1707. if(((C)->_arguments/*20*/)!=((void*)(X87arguments(a1)))){
  1708. /*[IF*/
  1709. if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X87arguments(a1))==((void*)(NULL)))){
  1710. r67add_position(X87start_position(a1));
  1711. r271error(r271start_position(C),((T0*)ms87_83182));
  1712. }
  1713.  else if((/*(IRF4.6count*/(((T179*)(((T175*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T179*)(((T175*)(X87arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  1714. r67add_position(X87start_position(a1));
  1715. r271error(r271start_position(C),((T0*)ms87_67155));
  1716. }
  1717. /*FI]*/
  1718. }
  1719. /*FI]*/
  1720. /*[IF*/
  1721. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  1722. /*[IF*/
  1723. /*AF*//*AE*/
  1724. /*FI]*/
  1725. }
  1726. /*FI]*/
  1727. /*[IF*/
  1728. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  1729. /*[IF*/
  1730. if(((C)->_arguments/*20*/)!=((void*)(NULL))){
  1731. /*[IF*/
  1732. if(!(r175is_a_in((T175*)((C)->_arguments/*20*/),X87arguments(a1),a2))){
  1733. r67add_position(X87start_position(a1));
  1734. r67add_position(r271start_position(C));
  1735. /*[IRF3.6append*/{T0* b1=((T0*)ms87_54285);
  1736. r7append((T7*)(oBC67explanation),b1);
  1737. }/*]*/
  1738. /*[IRF3.6append*/{T0* b1=X46run_time_mark((((T310*)a2))->_current_type/*0*/);
  1739. r7append((T7*)(oBC67explanation),b1);
  1740. }/*]*/
  1741. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  1742. }
  1743. /*FI]*/
  1744. }
  1745. /*FI]*/
  1746. }
  1747. /*FI]*/
  1748. R=(/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
  1749. /*[IF*/
  1750. if(R){
  1751. r271merge_header_comments(C,a1);
  1752. }
  1753. /*FI]*/
  1754. return R;
  1755. }
  1756. /*No:DEFERRED_PROCEDURE.ensure_assertion*/
  1757.  
  1758.  
  1759. T0* r271run_ensure(T0* a1){
  1760. T0* R=NULL;
  1761. T0* _ct=NULL;
  1762. T0* _r=NULL;
  1763. r50clear((T50*)(oBC87assertion_collector));
  1764. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1765. ((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(_default_item);
  1766. }/*]*/
  1767. _ct=/*X312current_type*/((T0*)(((T326*)a1))->_current_type/*4*/);
  1768. r22collect_for((T22*)(X46base_class(_ct)),2,/*X312name*/((T0*)(((T326*)a1))->_name/*16*/));
  1769. _r=r271runnable(oBC87assertion_collector,_ct,a1);
  1770. /*[IF*/
  1771. if((_r)!=((void*)(NULL))){
  1772. {T203*n=malloc(sizeof(*n));
  1773. *n=M203;
  1774. r203make_runnable(n,_r,_ct,a1);
  1775. R=(T0*)n;
  1776. }
  1777. /*[IRF3.3set_header_comment*/((((T203*)(((T203*)R))))->_header_comment)=(((T332*)(oBC87header_comment_memory))->_item/*0*/);
  1778. /*]*/
  1779. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1780. ((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(_default_item);
  1781. }/*]*/
  1782. }
  1783. /*FI]*/
  1784. return R;
  1785. }
  1786.  
  1787.  
  1788. void r271check_obsolete(T271* C){
  1789. /*[IF*/
  1790. if(!(((T59*)(oBC11small_eiffel))->_short_flag/*0*/)){
  1791. /*[IF*/
  1792. if(((C)->_obsolete_mark/*24*/)!=((void*)(NULL))){
  1793. /*[IRF3.6append*/{T0* b1=((T0*)ms202_39396);
  1794. r7append((T7*)(oBC67explanation),b1);
  1795. }/*]*/
  1796. /*[IRF3.6append*/{T0* b1=((T158*)((C)->_obsolete_mark/*24*/))->_to_string/*8*/;
  1797. r7append((T7*)(oBC67explanation),b1);
  1798. }/*]*/
  1799. r271warning(r271start_position(C),((T0*)ms12_166));
  1800. }
  1801. /*FI]*/
  1802. }
  1803. /*FI]*/
  1804. }
  1805.  
  1806.  
  1807. T0* r271try_to_undefine(T271* C,T0* a1,T0* a2){
  1808. T0* R=NULL;
  1809. T0* _fn2=NULL;
  1810. r67add_position(X77start_position(a1));
  1811. _fn2=r79feature_name((T79*)((C)->_names/*8*/),X77to_key(a1));
  1812. /*[IF*/
  1813. if((_fn2)!=((void*)(NULL))){
  1814. X77undefine_in(_fn2,a2);
  1815. }
  1816. /*FI]*/
  1817. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  1818. /*]*/
  1819. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  1820. /*]*/
  1821. /*]*/
  1822. R=/*(IRF4.4try_to_undefine_aux*/((T0*)(C))/*)*/;
  1823. /*[IF*/
  1824. if((R)!=((void*)(NULL))){
  1825. /*X270set_clients*//*[IRF3.3set_clients*/((((T273*)(((T273*)R))))->_clients)=((C)->_clients/*16*/);
  1826. /*]*/
  1827. r271merge_header_comments(C,R);
  1828. }
  1829. else{
  1830. r22fatal_undefine(((T22*)a2),a1);
  1831. }
  1832. /*FI]*/
  1833. return R;
  1834. }
  1835. /*No:DEFERRED_PROCEDURE.is_deferred*/
  1836. /*No:DEFERRED_PROCEDURE.set_clients*/
  1837. /*No:DEFERRED_PROCEDURE.code_ensure*/
  1838. /*No:DEFERRED_PROCEDURE.nb_errors*/
  1839.  
  1840.  
  1841. void r271make_routine(T271* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1842. /*[IRF3.3make_e_feature*/((((T271*)(C)))->_names)=(a1);
  1843. /*]*/
  1844. C->_header_comment=a4;
  1845. C->_arguments=a2;
  1846. C->_obsolete_mark=a3;
  1847. C->_require_assertion=a5;
  1848. }
  1849.  
  1850.  
  1851. T0* r271to_run_feature(T271* C,T0* a1,T0* a2){
  1852. T0* R=NULL;
  1853. r271check_obsolete(C);
  1854. {T330*n=malloc(sizeof(*n));
  1855. *n=M330;
  1856. r330make(n,a1,a2,(T0*)C);
  1857. R=(T0*)n;
  1858. }
  1859. return R;
  1860. }
  1861.  
  1862.  
  1863. void r271merge_header_comments(T271* C,T0* a1){
  1864. /*[IF*/
  1865. if(((T59*)(oBC11small_eiffel))->_short_flag/*0*/){
  1866. /*[IF*/
  1867. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  1868. C->_header_comment=/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/);
  1869. }
  1870.  else if((/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  1871. X87set_header_comment(a1,(C)->_header_comment/*12*/);
  1872. }
  1873. /*FI]*/
  1874. }
  1875. /*FI]*/
  1876. }
  1877. /*No:DEFERRED_PROCEDURE.arguments*/
  1878. /*No:DEFERRED_PROCEDURE.require_assertion*/
  1879.  
  1880.  
  1881. void r271warning(T0* a1,T0* a2){
  1882. r67add_position(a1);
  1883. r67warning((T67*)(oBC11eh),a2);
  1884. }
  1885. /*No:DEFERRED_PROCEDURE.try_to_undefine_aux*/
  1886. /*No:DEFERRED_PROCEDURE.set_ensure_assertion*/
  1887. /*No:DEFERRED_PROCEDURE.fz_bad_assertion*/
  1888. /*No:DEFERRED_PROCEDURE.fz_dot*/
  1889.  
  1890.  
  1891. void r271error(T0* a1,T0* a2){
  1892. r67add_position(a1);
  1893. r67error((T67*)(oBC11eh),a2);
  1894. }
  1895. /*No:DEFERRED_PROCEDURE.make*/
  1896. /*No:DEFERRED_PROCEDURE.end_comment*/
  1897.  
  1898.  
  1899. void r271collect_for(T271* C,T2 a1){
  1900. T0* _er=NULL;
  1901. /*[IF*/
  1902. if((a1)==(1)){
  1903. _er=(C)->_require_assertion/*28*/;
  1904. /*[IF*/
  1905. if((_er)!=((void*)(NULL))){
  1906. /*[IF*/
  1907. if(!(r315fast_has((T315*)(oBC87require_collector),_er))){
  1908. r315add_last((T315*)(oBC87require_collector),_er);
  1909. }
  1910. /*FI]*/
  1911. }
  1912. /*FI]*/
  1913. }
  1914. else{
  1915. /*[IF*/
  1916. if(((C)->_ensure_assertion/*32*/)!=((void*)(NULL))){
  1917. /*[IRF3.3set_item*/((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(((T203*)((C)->_ensure_assertion/*32*/))->_header_comment/*4*/);
  1918. /*]*/
  1919. r203add_into((T203*)((C)->_ensure_assertion/*32*/),oBC87assertion_collector);
  1920. }
  1921. /*FI]*/
  1922. }
  1923. /*FI]*/
  1924. }
  1925.  
  1926.  
  1927. void r271from_effective(T271* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1928. {T79*n=malloc(sizeof(*n));
  1929. *n=M79;
  1930. /*[IRF3.3make_1*/((((T79*)(n)))->_first)=(a1);
  1931. /*]*/
  1932. C->_names=(T0*)n;
  1933. }
  1934. r271make_routine(C,(C)->_names/*8*/,a2,NULL,NULL,a3);
  1935. /*[IRF3.3set_ensure_assertion*/((((T271*)(C)))->_ensure_assertion)=(a4);
  1936. /*]*/
  1937. C->_base_class=a5;
  1938. }
  1939.  
  1940.  
  1941. void r271set_header_comment(T271* C,T0* a1){
  1942. /*[IF*/
  1943. if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)>(1))){
  1944. C->_end_comment=a1;
  1945. }
  1946. /*FI]*/
  1947. }
  1948. /*No:DEFERRED_PROCEDURE.clients*/
  1949. /*No:DEFERRED_PROCEDURE.obsolete_mark*/
  1950. /*No:CHECK_INVARIANT.nb_errors*/
  1951. /*No:CHECK_INVARIANT.start_position*/
  1952.  
  1953.  
  1954. T0* r207twin(T207* C){
  1955. T0* R=NULL;
  1956. R=malloc(sizeof(*C));
  1957. *((T207*)R)=*C;
  1958. return R;
  1959. }
  1960.  
  1961.  
  1962. T0* r207runnable(T0* a1,T0* a2,T0* a3){
  1963. T0* R=NULL;
  1964. T0* _a=NULL;
  1965. T2 _i=0;
  1966. /*[IF*/
  1967. if(!(r50empty(((T50*)a1)))){
  1968. R=r50twin(((T50*)a1));
  1969. _i=(((T50*)R))->_upper/*8*/;
  1970. while (!((_i)==(0))) {
  1971. r59push((T59*)(oBC11small_eiffel),a3);
  1972. _a=r49to_runnable((T49*)(r50item(((T50*)R),_i)),a2);
  1973. /*[IF*/
  1974. if((_a)==((void*)(NULL))){
  1975. r207error(r49start_position((T49*)(r50item(((T50*)R),_i))),((T0*)ms12_14266));
  1976. }
  1977. else{
  1978. /*[IRF3.6put*/{T50* C1=((T50*)R);
  1979. T0* b1=_a;
  1980. T2 b2=_i;
  1981. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  1982. }/*]*/
  1983. }
  1984. /*FI]*/
  1985. r59pop((T59*)(oBC11small_eiffel));
  1986. _i=(_i)-(1);
  1987. }
  1988. }
  1989. /*FI]*/
  1990. return R;
  1991. }
  1992. /*No:CHECK_INVARIANT.header_comment*/
  1993.  
  1994.  
  1995. T0* r207to_runnable(T207* C,T0* a1){
  1996. T0* R=NULL;
  1997. /*[IF*/
  1998. if(((C)->_current_type/*12*/)==((void*)(NULL))){
  1999. C->_current_type=a1;
  2000. C->_run_feature=r59top_rf((T59*)(oBC11small_eiffel));
  2001. /*[IF*/
  2002. if(((C)->_list/*8*/)!=((void*)(NULL))){
  2003. C->_list=r207runnable((C)->_list/*8*/,a1,(C)->_run_feature/*16*/);
  2004. }
  2005. /*FI]*/
  2006. /*[IF*/
  2007. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  2008. R=(T0*)C;
  2009. }
  2010. /*FI]*/
  2011. }
  2012. else{
  2013. R=r207twin(C);
  2014. /*[IRF3.3set_current_type*/((((T207*)(((T207*)R))))->_current_type)=(NULL);
  2015. /*]*/
  2016. R=r207to_runnable(((T207*)R),a1);
  2017. }
  2018. /*FI]*/
  2019. return R;
  2020. }
  2021. /*No:CHECK_INVARIANT.set_current_type*/
  2022. /*No:CHECK_INVARIANT.fz_bad_assertion*/
  2023. /*No:CHECK_INVARIANT.current_type*/
  2024.  
  2025.  
  2026. void r207error(T0* a1,T0* a2){
  2027. r67add_position(a1);
  2028. r67error((T67*)(oBC11eh),a2);
  2029. }
  2030. /*No:CHECK_INVARIANT.run_feature*/
  2031.  
  2032.  
  2033. void r207make(T207* C,T0* a1,T0* a2,T0* a3){
  2034. C->_start_position=a1;
  2035. C->_header_comment=a2;
  2036. C->_list=a3;
  2037. }
  2038. /*No:CHECK_INVARIANT.list*/
  2039. /*No:COMPOUND.nb_errors*/
  2040.  
  2041.  
  2042. T0* r204start_position(T204* C){
  2043. T0* R=NULL;
  2044. /*[IF*/
  2045. if((r204count(C))>(0)){
  2046. R=X148start_position((C)->_first_one/*8*/);
  2047. }
  2048. /*FI]*/
  2049. return R;
  2050. }
  2051.  
  2052.  
  2053. T0* r204item(T204* C,T2 a1){
  2054. T0* R=NULL;
  2055. /*[IF*/
  2056. if((a1)==(1)){
  2057. R=(C)->_first_one/*8*/;
  2058. }
  2059. else{
  2060. R=/*(IRF4.6item*/(((T205*)((C)->_remainder/*12*/))->_storage/*0*/)[(a1)-(2)]/*)*/;
  2061. }
  2062. /*FI]*/
  2063. return R;
  2064. }
  2065. /*No:COMPOUND.header_comment*/
  2066. /*No:COMPOUND.first_one*/
  2067.  
  2068.  
  2069. T0* r204to_runnable(T204* C,T0* a1){
  2070. T0* R=NULL;
  2071. T0* _i2=NULL;
  2072. T0* _i1=NULL;
  2073. T2 _i=0;
  2074. /*[IF*/
  2075. if(((C)->_first_one/*8*/)==((void*)(NULL))){
  2076. R=(T0*)C;
  2077. }
  2078.  else if(((C)->_current_type/*4*/)==((void*)(NULL))){
  2079. C->_current_type=a1;
  2080. _i=r204count(C);
  2081. while (!((_i)==(0))) {
  2082. _i1=r204item(C,_i);
  2083. _i2=X148to_runnable(_i1,a1);
  2084. /*[IF*/
  2085. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)>(0)){
  2086. /*[IRF3.6append*/{T0* b1=((T0*)ms204_59163);
  2087. r7append((T7*)(oBC67explanation),b1);
  2088. }/*]*/
  2089. /*[IRF3.6append*/{T0* b1=X46written_mark((C)->_current_type/*4*/);
  2090. r7append((T7*)(oBC67explanation),b1);
  2091. }/*]*/
  2092. r67add_position(X148start_position(_i1));
  2093. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms204_180);
  2094. r67fatal_error((T67*)(oBC11eh),b1);
  2095. }/*]*/
  2096. }
  2097. else{
  2098. r204put(C,_i2,_i);
  2099. }
  2100. /*FI]*/
  2101. _i=(_i)-(1);
  2102. }
  2103. R=(T0*)C;
  2104. }
  2105. else{
  2106. {T204*n=malloc(sizeof(*n));
  2107. *n=M204;
  2108. r204from_compound(n,(T0*)C);
  2109. R=(T0*)n;
  2110. }
  2111. R=r204to_runnable(((T204*)R),a1);
  2112. }
  2113. /*FI]*/
  2114. return R;
  2115. }
  2116. /*No:COMPOUND.current_type*/
  2117.  
  2118.  
  2119. T2 r204count(T204* C){
  2120. T2 R=0;
  2121. /*[IF*/
  2122. if(((C)->_first_one/*8*/)==((void*)(NULL))){
  2123. }
  2124.  else if(((C)->_remainder/*12*/)!=((void*)(NULL))){
  2125. R=(((T205*)((C)->_remainder/*12*/))->_upper/*8*/)+(2);
  2126. }
  2127. else{
  2128. R=1;
  2129. }
  2130. /*FI]*/
  2131. return R;
  2132. }
  2133.  
  2134.  
  2135. void r204make(T204* C,T0* a1,T0* a2,T0* a3){
  2136. C->_header_comment=a1;
  2137. C->_first_one=a2;
  2138. C->_remainder=a3;
  2139. }
  2140. /*No:COMPOUND.remainder*/
  2141.  
  2142.  
  2143. void r204put(T204* C,T0* a1,T2 a2){
  2144. /*[IF*/
  2145. if((a2)==(1)){
  2146. C->_first_one=a1;
  2147. }
  2148. else{
  2149. /*[IRF3.5put*/(((T205*)((C)->_remainder/*12*/))->_storage/*0*/)[(a2)-(2)]=(a1);
  2150. /*]*/
  2151. }
  2152. /*FI]*/
  2153. }
  2154.  
  2155.  
  2156. void r204from_compound(T204* C,T0* a1){
  2157. C->_header_comment=(((T204*)a1))->_header_comment/*0*/;
  2158. C->_first_one=(((T204*)a1))->_first_one/*8*/;
  2159. C->_remainder=(((T204*)a1))->_remainder/*12*/;
  2160. /*[IF*/
  2161. if(((C)->_remainder/*12*/)!=((void*)(NULL))){
  2162. C->_remainder=r205twin((T205*)((C)->_remainder/*12*/));
  2163. }
  2164. /*FI]*/
  2165. }
  2166. /*No:COMPOUND.fatal_error*/
  2167.  
  2168.